Self-maintaining autonomous vehicle procedure

ABSTRACT

Aspects of the disclosed technology encompass solutions for automatically managing autonomous vehicle (AV) operating and maintenance tasks, such as implementing an alternative operating mode or ordering replacement parts for an AV components. In some aspects, a process of the disclosed technology can include steps for receiving diagnostic data corresponding with an AV component, determining an estimated life cycle of the AV component, and determining whether to generate an action to implement an alternative operating mode or an order request for one or more replacement parts of the AV component, based on the estimated life cycle of the AV component. Systems and machine-readable media are also provided.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. application Ser. No. 17/155,921, filed Jan. 22, 2021, entitled “SELF-MAINTAINING AUTONOMOUS VEHICLE PROCEDURE,” which is a continuation of and claims priority benefit to U.S. application Ser. No. 16/410,911, filed May 13, 2019, entitled “SELF-MAINTAINING AUTONOMOUS VEHICLE PROCEDURE,” all of which are entirely incorporated by reference herein.

BACKGROUND 1. Technical Field

The subject matter of this disclosure relates in general to the field of rideshare vehicles, and more particularly, to systems and methods for self-monitoring, prediction, and maintenance of an autonomous rideshare vehicle, and their applications in fleet operation.

2. Introduction

Autonomous vehicles (AVs) are vehicles having computers and control systems that perform driving and navigation tasks that are conventionally performed by a human driver. As AV technologies continue to advance, they will be increasingly used to improve transportation efficiency and safety. As such, AVs will need to perform many of the functions that are conventionally performed by human drivers, such as performing navigation and routing tasks necessary to provide a safe and efficient transportation.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-recited and other advantages and features of the present technology will become apparent by reference to specific implementations illustrated in the appended drawings. A person of ordinary skill in the art will understand that these drawings only show some examples of the present technology and would not limit the scope of the present technology to these examples. Furthermore, the skilled artisan will appreciate the principles of the present technology as described and explained with additional specificity and detail through the use of the accompanying drawings in which:

FIG. 1 illustrates an example schematic diagram of an autonomous vehicle and network environment, in accordance with some embodiments;

FIG. 2 illustrates an example schematic diagram of an autonomous vehicle and network environment that enables self-maintenance of an autonomous vehicle, in accordance with some embodiments;

FIG. 3A illustrates a flowchart representation of the self-maintenance of an autonomous vehicle, in accordance with some embodiments;

FIG. 3B illustrates a flowchart representation of criticality determinations for detected issues, in accordance with some embodiments;

FIG. 4 illustrates a block diagram of an example system for predicting AV component failures and ordering replacement parts, in accordance with some embodiments;

FIG. 5 illustrates a flowchart of an example process for determining whether to generate an order request for replacement parts of an AV component, in accordance with some embodiments;

FIG. 6 illustrates an example of a machine-learning network that can be implemented to estimate the durability of various AV components, in accordance with some embodiments;

FIG. 7 shows an example of a system for implementing certain aspects of the present technology.

DETAILED DESCRIPTION

Various examples of the present technology are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the present technology. In some instances, well-known structures and devices are shown in block diagram form in order to facilitate describing one or more aspects. Further, it is to be understood that functionality that is described as being carried out by certain system components may be performed by more or fewer components than shown.

As described herein, one aspect of the present technology is the gathering and use of data available from various sources to improve quality and experience. The present disclosure contemplates that in some instances, this gathered data may include personal information. The present disclosure contemplates that the entities involved with such personal information respect and value privacy policies and practices.

An exemplary autonomous vehicle includes a plurality of sensor systems, such as, but not limited to, a camera sensor system, a Light Detection and Ranging (LiDAR) sensor system, a radar sensor system, amongst others, where the autonomous vehicle operates based upon sensor signals output by the sensor systems. Specifically, the sensor signals are provided to an internal computing system in communication with the plurality of sensor systems, where a processor executes instructions based upon the sensor signals to control a mechanical system of the autonomous vehicle, such as a vehicle propulsion system, a braking system, or a steering system, etc.

Currently, a human operator needs to monitor a fleet and drive an autonomous vehicle into a shop when it is deemed as needing repair. This requires checking quantitative and qualitative values against a range of acceptable values. Once repair is deemed necessary, the human operator must direct the autonomous vehicle to a garage. This can be a time consuming and error-prone process, especially as a fleet increases significantly in size or area of operation, since it relies on human intervention.

Additionally, in service of conventional AV systems, the human operator typically needs to identify faulty components, and order replacement parts necessary to complete repairs. Such approaches can be labor intensive and time consuming, and do not take into consideration the state of currently functioning components that are likely to break or malfunction in the near future.

The disclosed technology addresses the need in the art for self-monitoring, prediction, and maintenance capabilities of an autonomous vehicle, as well as fleet level operation optimization. Currently, human intervention is needed to constantly monitor a fleet of vehicles. When someone monitoring it deems it needs repair, they need to then direct another service to drive the vehicle into a garage. This means that human intervention is needed to check quantitative and qualitative values against, say, a range of acceptable values, and human intervention is then needed again to get the vehicle to the garage for service. This requires constant attention and introduces opportunity for error or the escalation of vehicle issues, since only major issues may be flagged by human operators as needing service or repair.

To solve the above issues, systems and methods are disclosed for enabling an autonomous vehicle to automatically and dynamically monitor, predict, and maintain itself, which removes the need for human monitoring and intervention. The autonomous vehicle can, for example, analyze diagnostic data captured by one or more of its sensors. Based on the analysis of the diagnostic data, the autonomous vehicle can determine the remaining service life of its hardware components and/or the AV as a whole, and/or if it needs, or will need, preventative or maintenance actions, and, based on that determination, send the analysis of the diagnostic data to a routing service. The autonomous vehicle can then implement the preventative actions or receive instruction from the routing service to dynamically route the autonomous vehicle in accordance with a maintenance action.

In some aspects, the disclosed technology also provides solutions for predicting a life cycle (or lifespan) of AV components and/or AV systems. Such predictions can include predictions regarding usable life before a component failure, the impact of component failures on different components and/or systems. In instances where an impending component failure is predicted, requests for replacement parts can be automatically generated, for example, to ensure that replacement parts are available at the time of vehicle maintenance. By proactively generating part orders based on component life/duty cycle estimates, aspects of the disclosed technology help to improve maintenance workflow efficiencies, thereby increasing AV up-time.

In another embodiment, the disclosed technology also provides solutions for preventing an impending failure or extending a life cycle (or lifespan) of AV components and/or AV systems. For example, based on the analysis of the monitoring data, if an AV component is determined to be aging/degrading at a higher-than-normal rate due to high temperature, the operation mode of the component can be dynamically adjusted to reduce its operating stress and extend its remaining usable life, by, for example, reducing its duty cycle, or improving local environment cooling.

FIG. 1 illustrates environment 100 that includes an autonomous vehicle 102 in communication with a remote computing system 150. In some embodiments, the autonomous vehicle 102 can navigate about roadways without a human driver based upon sensor signals output by sensor systems 104-106 of the autonomous vehicle 102. The autonomous vehicle 102 includes a plurality of sensor systems 104-106 (a first sensor system 104 through an Nth sensor system 106). The sensor systems 104-106 are of different types and are arranged about the autonomous vehicle 102. For example, the first sensor system 104 may be a camera sensor system and the Nth sensor system 106 may be a lidar sensor system. Other exemplary sensor systems include radar sensor systems, global positioning system (GPS) sensor systems, inertial measurement units (IMU), infrared sensor systems, laser sensor systems, sonar sensor systems, and the like.

The autonomous vehicle 102 further includes several mechanical systems that are used to effectuate appropriate motion of the autonomous vehicle 102. For instance, the mechanical systems can include but are not limited to, a vehicle propulsion system 130, a braking system 132, and a steering system 134. The vehicle propulsion system 130 may include an electric motor, an internal combustion engine, or both. The braking system 132 can include an engine brake, brake pads, actuators, and/or any other suitable componentry that is configured to assist in decelerating the autonomous vehicle 102. The steering system 134 includes suitable componentry that is configured to control the direction of movement of the autonomous vehicle 102 during navigation.

The autonomous vehicle 102 further includes a safety system 136 that can include various lights and signal indicators, parking brake, airbags, etc. The autonomous vehicle 102 further includes a cabin system 138 that can include cabin temperature control systems, in-cabin entertainment systems, etc.

The autonomous vehicle 102 additionally comprises an autonomous vehicle (AV) internal computing system 110 that is in communication with the sensor systems 104-106 and the systems 130, 132, 134, 136, and 138. The AV internal computing system 110 includes at least one processor and at least one memory having computer-executable instructions that are executed by the processor. The computer-executable instructions can make up one or more services responsible for controlling the autonomous vehicle 102, communicating with remote computing system 150, receiving inputs from passengers or human co-pilots, logging metrics regarding data collected by sensor systems 104-106 and human co-pilots, etc.

The AV internal computing system 110 can include an analysis service 122 that is configured to analyze diagnostic data from AV components and predict the health and remaining usable lifetime of AV components. The analysis service (or health analysis service) 122 may receive diagnostic data, such as temperature, humidity, vibration, operating voltage of AV components and use a model to determine the health status and remaining life of the AV components. In some aspects, the model can be analytical, empirical, and/or a machine-learning model, or a combination of the above. Based on the result of the health analysis, the health analysis service 122 may also prescribe a preventative action for the AV. For example, if an AV component is aging/degrading faster than normal due to overheating, the health analysis service 122, upon analyzing the component and vehicle temperature data, may perform preventative actions. For example, the health analysis service may generate an action (or action request) that includes instructions to reduce an operating duty cycle or increase cooling fan speed to slow down the aging of the component.

The AV internal computing system 110 can also include a control service 112 that is configured to control operation of the vehicle propulsion system 130, the braking system 132, the steering system 134, the safety system 136, and the cabin system 138. The control service 112 receives sensor signals from the sensor systems 104-106 as well as communicating with other services of the AV internal computing system 110 to effectuate operation of the autonomous vehicle 102. In some embodiments, control service 112 may carry out operations in concert with one or more other systems of autonomous vehicle 102.

The AV internal computing system 110 can also include a constraint service 114 to facilitate safe propulsion of the autonomous vehicle 102. The constraint service 114 includes instructions for activating a constraint based on a rule-based restriction upon operation of the autonomous vehicle 102. For example, the constraint may be a restriction upon navigation that is activated in accordance with protocols configured to avoid occupying the same space as other objects, abide by traffic laws, circumvent avoidance areas, etc. In some embodiments, the constraint service can be part of the control service 112.

The AV internal computing system 110 can also include a communication service 116. The communication service 116 can include both software and hardware elements for transmitting and receiving signals from/to the remote computing system 150. The communication service 116 is configured to transmit information wirelessly over a network, for example, through an antenna array that provides personal cellular (long-term evolution (LTE), 3G, 5G, etc.) communication.

In some embodiments, one or more services of the AV internal computing system 110 are configured to send and receive communications to remote computing system 150 for such reasons as reporting data for training and evaluating machine learning algorithms, requesting assistance from remote computing system 150 or a human operator via remote computing system 150, software service updates, ridesharing pickup and drop off instructions, etc.

The AV internal computing system 110 can also include a latency service 118. The latency service 118 can utilize timestamps on communications to and from the remote computing system 150 to determine if a communication has been received from the remote computing system 150 in time to be useful. For example, when a service of the AV internal computing system 110 requests feedback from remote computing system 150 on a time-sensitive process, the latency service 118 can determine if a response was timely received from remote computing system 150 as information can quickly become too stale to be actionable. When the latency service 118 determines that a response has not been received within a threshold, the latency service 118 can enable other systems of autonomous vehicle 102 or a passenger to make necessary decisions or to provide the needed feedback.

The AV internal computing system 110 can also include a user interface service 120 that can communicate with cabin system 138 in order to provide information or receive information to a human co-pilot or human passenger. In some embodiments, a human co-pilot or human passenger may be required to evaluate and override a constraint from constraint service 114, or the human co-pilot or human passenger may wish to provide an instruction to the autonomous vehicle 102 regarding destinations, requested routes, or other requested operations.

As described above, the remote computing system 150 is configured to send/receive a signal from the autonomous vehicle 102 regarding reporting data for training and evaluating machine learning algorithms, requesting assistance from remote computing system 150 or a human operator via the remote computing system 150, software service updates, rideshare pickup and drop off instructions, etc.

The remote computing system 150 includes an analysis service 152 that is configured to receive data from autonomous vehicle 102 and analyze the data to train or evaluate machine learning algorithms for operating the autonomous vehicle 102. The analysis service 152 can also perform analysis pertaining to data associated with one or more errors or constraints reported by autonomous vehicle 102.

The remote computing system 150 can also include a user interface service 154 configured to present metrics, video, pictures, sounds reported from the autonomous vehicle 102 to an operator of remote computing system 150. User interface service 154 can further receive input instructions from an operator that can be sent to the autonomous vehicle 102.

The remote computing system 150 can also include an instruction service 156 for sending instructions regarding the operation of the autonomous vehicle 102. For example, in response to an output of the analysis service 152 or user interface service 154, instructions service 156 can prepare instructions to one or more services of the autonomous vehicle 102 or a co-pilot or passenger of the autonomous vehicle 102.

The remote computing system 150 can also include a rideshare service 158 configured to interact with ridesharing applications 170 operating on (potential) passenger computing devices. The rideshare service 158 can receive requests to be picked up or dropped off from passenger ridesharing application 170 and can dispatch autonomous vehicle 102 for the trip. The rideshare service 158 can also act as an intermediary between the ridesharing application 170 and the autonomous vehicle 102 wherein a passenger might provide instructions to the autonomous vehicle 102 to go around an obstacle, change routes, honk the horn, etc.

FIG. 2 illustrates an example schematic diagram of an autonomous vehicle and network environment that enables self-maintenance of an autonomous vehicle, in accordance with some embodiments. System 200 can maintain a fleet of vehicles that are fully autonomous without human intervention and/or monitoring. Conventionally, the current system of maintaining a vehicle needs human intervention—the vehicle runs diagnostics, and if there's an issue flagged by someone monitoring the diagnostics, they would have to contact an employee at a maintenance facility, such as a shop, to see if the shop could work on the vehicle. This introduces human error and inefficiencies that could affect a fleet of autonomous vehicles that may need maintenance over time. System 200 leverages an increased diagnostic capability of an autonomous vehicle 202, such as an autonomous vehicle 202 within fleet 226, to remove the need for human intervention and/or monitoring. The diagnostic capabilities can be integrated into a dispatching algorithm that can dynamically and/or automatically send autonomous vehicles to needed facilities based on the severity of the issue(s). The diagnostic capabilities can apply to preventative maintenance (e.g., knowing that autonomous vehicle 202 need an oil change in 50 miles and, based on that, sending it to the nearest shop before the 50 miles is reached), and/or can apply to diagnosing more critical issues (e.g., one of the lidar sensors is broken or malfunctioning and needs to be sent to a shop immediately to fix or replace the lidar sensor).

Autonomous vehicle 202 can dynamically self-maintain itself by analyzing diagnostic data captured by one or more sensors 204 of the autonomous vehicle 202. Autonomous vehicle 202 can include a plurality of sensors 204 within multiple sensor systems including, but not limited to, a camera sensor system, a lidar sensor system, a radar sensor system, amongst others. The plurality of sensor systems can work independently or interoperably with each other in order to navigate and/or capture environmental and operational conditions. Sensors 204, for example, can detect or capture diagnostic data that will enable the autonomous vehicle 202 to monitor itself.

Each sensor 204 can store the diagnostic data within data store 208 on the autonomous vehicle 202. Internal analysis service 210 of autonomous vehicle 202 can, in some embodiments, generate one or more models 214 that describe the behavior, operation, or context of the autonomous vehicle 202 based on the diagnostic data within data store 208. For example, internal analysis service 210 can determine, based on models 214, the yaw, acceleration, orientation, location, and surroundings (e.g., buildings, people, obstacles, light levels, temperature, sounds, etc.) of autonomous vehicle 202. Internal analysis service 210 of autonomous vehicle 202 can, in another embodiment, generate one or more models 214 that describe the health status of the AV sensors 204 and/or the autonomous vehicle 202 based on the diagnostic data within data store 208. For example, internal analysis service 210 may predict, based on models 214, the remaining usable life of various AV components, such as cameras, radars, and/or lidars.

Based on the analysis of the diagnostic data detecting an operational issue, autonomous vehicle 202 can determine that it needs maintenance. Diagnostics service 206, for example, can diagnose issues within the diagnostic data and make determinations about whether autonomous vehicle 202 needs maintenance and how critical the issue is. Diagnostics service 206, for example, can detect an operational issue by applying models 214 to the diagnostic data. For example, diagnostics service 206 can check against software versions, valid calibration values, etc. For instance, if autonomous vehicle's 202 yaw is beyond an acceptable value or value range, then diagnostics service 206 can compare the diagnostics data against models 214 to diagnose a specific issue. In some embodiments, most of the analysis of the diagnostics data is done on autonomous vehicle 202 (via diagnostics service 206) so as to provide immediate response to issues (or response despite a loss of connection to a remote network). In other embodiments, the analysis of the diagnostics data can be done on a back end, remote server.

Based on the determination of the specific issue, the analysis of the diagnostic data can be sent to a backend, remote network, such as network 232, which can route autonomous vehicle 202 via routing service 224 in accordance with the determination. For example, routing service 224 can send issues to maintenance service 222 to determine an appropriate response, such as routing autonomous vehicle 202 to a specific shop, notifying and setting up maintenance, picking up a stranded passenger, etc.

In some embodiments, diagnostics service 206 can additionally receive input from passengers within autonomous vehicle 202 providing feedback. For example, user interface service 230 can receive input from a passenger at a computer interface, such as a pad within autonomous vehicle 202 or through a ridesharing application 234 on the passenger's mobile device. The passenger can indicate at the user interface service 230 that there is an issue with the operation of autonomous vehicle 202, like a quick stop, a jerky turn, etc. In some instances, the passenger can assume manual control of autonomous vehicle through user interface service 230, which can communicate with control service 212 to operate autonomous vehicle 202 accordingly.

In some embodiments, models 214 can be continuously supplemented and updated by diagnostics data collected by the entire fleet 226. The diagnostics data can be transmitted to network 232 that can remotely compile and average the received diagnostics data from all vehicles within fleet 226 to generate models 214 remotely. For example, analysis service 216 can analyze the diagnostics data from fleet 226 to generate detailed, accurate models 214 that can then be applied to models 214 on autonomous vehicle 202 on its next update or connection to network 232. As a result, models 214 can be continuously trained as each autonomous vehicle 202 within fleet 226 operates over time. In some embodiments, models 214 on network 232 can be supplemented by passenger input through rideshare service 228 in communication with ridesharing application 234.

The determination that autonomous vehicle 202 needs maintenance based on the analysis of the diagnostic data from the entire fleet 226 can enable the detection of subtle or emerging operational issues with the autonomous vehicle 202. For example, for each sensor 204 that may be recording an issue, the diagnostic data from that sensor 204 can be compared against successful trips of other cars with that sensor (or unsuccessful trips). This can enable models 214 to constantly learn and improve criticality levels and other insights, such as what is the perfect level of charge, the perfect state of components of autonomous vehicle 202 for the best mileage or passenger experience, etc.

Diagnostics service 206 can also classify issues flagged by models 214 into different criticality levels. For example, a criticality level of an operational issue with the autonomous vehicle can be determined based on models 214 (and in some embodiments, based on models 214 continuously updated based on diagnostic data from the fleet 226). For example, an operational issue with autonomous vehicle 202 can be classified at a high criticality level based on diagnostics data being within or above a range of values that suggest that autonomous vehicle 202 is in immediate danger of failure or malfunction. Based on the operational issue being within the high criticality level, autonomous vehicle 202 can receive instruction from routing service 224 to bring the autonomous vehicle to a stop.

Additionally, at network 232, additional details can be stored and analyzed that would not be considered normally urgent or critical to autonomous vehicle's 202 operation (that would take up more processing time than desired if done locally). For example, autonomous vehicle 202 can report small maintenance issues like low tire pressure, low oil levels, and other persistent issues that can in the long run lead to urgent issues. The granular details within diagnostic data can be pulled out of data store 208 and/or internal analysis service 210 and stored/analyzed on the back end (such as via analysis service 216 on network 232 and used to modify/update models 214). Network 232 can determine how critical the granular details are for dispatch. For example, low tire pressure can be flagged based on the value of certain diagnostic data analysis service 216 receives. Routing service 224 can continue the current trip, and doesn't need to cancel the ride with a passenger. But if analysis service 216 determines it's serious enough, once the trip is finished, routing service 224 can be sent to control service 212 to route autonomous vehicle 202 to the next facility to fix the tire pressure.

In some embodiments, once the analysis of the diagnostic data is sent to routing service 224 based on the determination that autonomous vehicle 202 needs maintenance, autonomous vehicle 202 can receive instruction from routing service 224 to dynamically route autonomous vehicle 202 in accordance with a maintenance action specified by maintenance service 222. For example, maintenance service 222 can communicate with one or more maintenance facilities 218 to dynamically and automatically schedule maintenance for autonomous vehicle 202. Maintenance service 222 can also communicate with backup service 220 to send a backup vehicle to pick up a stranded passenger (e.g., for autonomous vehicles 202 that are experiencing urgent, dangerous issues).

For example, maintenance service 222 can take into consideration the current load at maintenance facilities 218. The total number of charging ports, for example, can be known for a given facility, as well as how many are actually available vs. used.

Maintenance service 222 can also take into consideration different maintenance facilities 218 having specific specialties, specific technicians, and/or specific parts. Some maintenance facilities 218 can be appropriate for maintenance, for example, while others are best for charging the autonomous vehicle 202. As a result, when autonomous vehicle 202 needs to automatically route itself to a maintenance facility 218, the maintenance facility 218 can be selected based on parameters such as directing the autonomous vehicle 202 to a shop that has the proper technicians with the proper parts to service the specific need of the autonomous vehicle 202. For example, certain maintenance facilities 218 can have technicians that specialize in lidar sensor systems. Other maintenance facilities 218 can have technicians that specialize in camera sensor systems, radar sensor systems, global positioning system (GPS) sensor systems, inertial measurement units (IMU), infrared sensor systems, laser sensor systems, sonar sensor systems, and/or the like. Still other maintenance facilities 218 can have technicians that specialize in more general vehicle systems, such as the autonomous vehicle's 202 propulsion system, braking system, steering system, safety system, cabin system (e.g., temperature control, lighting, etc.). Moreover, even within maintenance facilities 218 for charging autonomous vehicle 202, certain maintenance facilities 218 can have a certain number of charging stations that may have cars already plugged into them (e.g., a limited number of open charging stations that can service autonomous vehicle 202). In that case, that maintenance facility 218 may be passed for consideration in favor of another with availability.

In some embodiments, maintenance service 222 can weight certain actions depending on multiple priorities. For example, while some maintenance facilities 218 may be the best suited for a specific maintenance action, the maintenance facility 218 may be at capacity and cannot take autonomous vehicle 202—therefore, maintenance service 222 can communicate with routing service 224 to route autonomous vehicle 202 to another maintenance facility with availability that does not specialize in the specific maintenance action or is farther away from autonomous vehicle's 202 current position.

In some embodiments, autonomous vehicle 202 may be queued based on its priority level. Its priority level may be related to the issue's criticality level. For example, the queue may populate the top of its queue with the autonomous vehicles of fleet 226 that are suffering from high criticality issues and therefore need to go to a maintenance facility 218 straight away. Autonomous vehicles of fleet 226 with low criticality issues may be pushed further down the queue so that they are dispatched to a maintenance facility 218 when there is extra availability.

FIG. 3A illustrates a flowchart representation of the self-maintenance of an autonomous vehicle, in accordance with some embodiments. Method 300 can begin upon startup of the autonomous vehicle (step 302). In some embodiments, startup can trigger a diagnostics check (step 304), which can check systems within the autonomous vehicles for any issues before the autonomous vehicle picks up a passenger or starts to operate on the road. Additionally and/or alternatively, in some embodiments, the diagnostics check (step 304) can be run on a continuous or periodic basis in order to monitor how the autonomous vehicle is operating over time. The diagnostics check can determine if there are any issues detected (step 306). If there are no issues detected, then the diagnostics check can be run at a subsequent time to check for issues again.

In some embodiments, the diagnostics check can raise a heartbeat event periodically (e.g., every 30 seconds) or continuously to check if a system is still alive (e.g., functioning properly). The systems being checked can respond to the heartbeat event, and can be logged as response events within a log. The response events can include diagnostics data for analysis of any issues being experienced by the corresponding system.

In some embodiments, upon startup, the diagnostics check can discover that a particular firmware version is out of date. For example, if the network has updated to a new version of firmware for the lidar system, a response event from the diagnostics check can detect that the older version is being used and the lidar system on the autonomous vehicle needs to be updated (and the update can be initiated once a link with the network is established). Or the response event from the diagnostics check can determine that version 1.5 of the firmware for the lidar system is broken, so either a patch or update needs to take place to fix the issue. The diagnostics check can contain a requirement list of needed sensors, versions, autonomous vehicle components, etc. Therefore, the diagnostics check can determine if the autonomous vehicle has a healthy lidar system, healthy radar system, etc. by monitoring and comparing diagnostics data to the requirement list.

In some embodiments the diagnostics checks may be done at different layers. At a first layer, for example, if the diagnostics check runs a certain group of checks against all hardware pieces, and those checks fail, the autonomous vehicle is not allowed or enabled to boot up. Once those checks pass, which can determine that all the basics of driving the autonomous vehicle has been satisfied, a secondary layer can check all the components of the autonomous vehicle in operation. The secondary layer may periodically or continuously transmit diagnostics information and data to the back end (e.g., the network) and confirm that all systems are running as desired (or a system is experiencing one or more issues). In some embodiments, if the first layer of the diagnostic check fails, then the system can flag the availability of the vehicle, providing information about whether the autonomous vehicle is unavailable for rideshare at all, or whether it's available for rideshare but in need of maintenance soon.

In some embodiments, the system can determine the criticality of any detected issues (step 308). For example, diagnostics data can be received from sensors on the autonomous vehicle during a diagnostics check, which can include information on how the sensors or components of the autonomous vehicle are operating. Models applied to the diagnostics data can analyze the diagnostics data in order to determine what issues the autonomous vehicle is experiencing (or is going to experience) (e.g., the issues can be predictive or purely diagnostic).

If the analysis of the diagnostics data determines that an issue is within a high criticality level (step 310), then the autonomous vehicle can come to a safe stop (step 312). For example, the diagnostics data can have values above or below a threshold value that indicates a critical and/or imminently urgent issue. If there are passengers within the autonomous vehicle, the system can call the nearest available backup service to pick them up (step 314). In some embodiments, the system can communicate to the passenger (via a pad within the autonomous vehicle, a notification within the rideshare application, etc.) that they are being provided alternative transportation. The system can call a tow truck to retrieve the autonomous vehicle and bring it to a maintenance facility (e.g., the nearest maintenance facility that has availability for the autonomous vehicle) that can service the autonomous vehicle (step 316). A work order can be created in the maintenance system with pre-populated instructions and diagnostics information (step 318). The autonomous vehicle can then be removed from rideshare availability (step 320).

For example, a work order can include pre-populated instructions customized to different maintenance facilities that have specific specialties, specific technicians, and/or specific parts. For example, some maintenance facilities can be appropriate for maintenance, while others are best for charging the autonomous vehicle. When the autonomous vehicle needs to automatically route itself to a maintenance facility, the maintenance facility can be selected and the system can pre-populate instructions within a work order for the maintenance facility based on certain parameters. These parameters can direct the autonomous vehicle to a shop that has the proper technicians with the proper parts to service the specific need of the autonomous vehicle. For example, a work order can be meant for a maintenance facility with technicians that specialize in lidar sensor systems, and can pre-populate instructions related to repairing the autonomous vehicle's lidar system. Other maintenance facilities 218 can have technicians that specialize in camera sensor systems, radar sensor systems, global positioning system (GPS) sensor systems, inertial measurement units (IMU), infrared sensor systems, laser sensor systems, sonar sensor systems, and/or the like, and so the work order can be pre-populated with instructions for repairing the autonomous vehicle's corresponding system. Still other maintenance facilities can have technicians that specialize in more general vehicle systems, such as the autonomous vehicle's propulsion system, braking system, steering system, safety system, cabin system (e.g., temperature control, lighting, etc.); the work order can correspondingly be pre-populated with instructions for repairing the autonomous vehicle's specific system that needs repair. Some maintenance facilities are used for charging the autonomous vehicle, and can have a certain number of charging stations that may have cars already plugged into them (e.g., a limited number of open charging stations that can service autonomous vehicle). In that case, a work order can be generated for a maintenance facility with availability by pre-populating the work order with instructions to charge the autonomous vehicle. Diagnostics information related to the issue for repair may be included as well.

If the analysis of the diagnostics data determines that an issue is within a medium criticality level (step 322), then the autonomous vehicle can finish its current operations before being dispatched to an appropriate maintenance facility. A medium criticality level can be determined when the diagnostics data has values within a range that indicates that a problem, while not critical or imminently urgent, is an issue that should be fixed within a certain period of time. For example, since there are multiple cameras in the autonomous vehicle, when one camera goes out, the autonomous vehicle can still operate safely until the camera is fixed. In this case, the autonomous vehicle can complete the drop-off of any passengers (step 324), and before the certain period of time has passed, dispatch the autonomous vehicle to autonomously drive to a maintenance facility (e.g., the nearest maintenance facility that has availability for the autonomous vehicle) that can service the issue detected by the autonomous vehicle (step 326). This can be done through a work order created by pre-populating instructions and/or including diagnostics information, similar to that discussed above. The autonomous vehicle can then be removed from rideshare availability (step 320).

If the analysis of the diagnostics data determines that an issue is within a low criticality level (step 328), then a work order can be scheduled for the future with pre-populated instructions and diagnostics information (e.g., the work order can be scheduled for a time when there is availability and the autonomous vehicle is not booked with a passenger) (step 330). This can be done through a work order created by pre-populating instructions and/or including diagnostics information, similar to that discussed above. At the scheduled work order time, the autonomous vehicle can be dispatched to autonomously drive to a maintenance facility (e.g., the nearest maintenance facility that has availability for the autonomous vehicle) that can service the issue detected by the autonomous vehicle (step 332). A low criticality level can be determined when the diagnostics data has values below a threshold that indicates that a problem is not critical or imminently urgent.

In some embodiments, the autonomous vehicle can recalibrate its sensors. For example, a camera may not be properly detecting or seeing the world. This can indicate that it isn't properly calibrated. Depending on how far the current calibration values deviate from the expected range, a criticality of the calibration issue may be determined by the system. The autonomous vehicle may then be dispatched to drive to the closest place to recalibrate its sensors. In some embodiments, the autonomous vehicle may be routed to a checked billboard on a highway that enables the sensors within the autonomous vehicle to recalibrate.

FIG. 3B illustrates a flowchart representation of criticality determinations for detected issues, in accordance with some embodiments. The autonomous vehicle can start diagnostics (step 350), such as through a continuous or periodic diagnostics check through a diagnostics service that can detect one or more issues experienced by or anticipated by the autonomous vehicle. If the diagnostics service determines that there are any issues with starting and moving the physical components of the autonomous vehicle (step 352), then the criticality level is classified as high (step 354). If the diagnostics service determines that sensor calibration values exceed an acceptable range determined by the server in the back end (e.g., remote network) (step 356), then the criticality level is also classified as high (step 354).

However, if the diagnostics service does not detect the above, but does detect that there are non-critical warnings produced by hardware within the autonomous vehicle (step 358), then the criticality level is classified as medium (step 360).

If not, and the diagnostics service or remote back-end server indicates that the autonomous vehicle is due for preventative maintenance (step 362), then the criticality level is classified as low (step 364). In some embodiments, the need for preventive maintenance can be based on driving history, sensor data, and/or overall fleet performance and analysis. If no issues are detected (step 366), then the diagnostics may either end or be deferred for a subsequent time.

FIG. 4 illustrates a block diagram of an example system 400 for predicting AV component failures, and facilitating replacement part order generation. System 400 includes AV 402 from which diagnostic data can be received. As discussed above, diagnostic data can include data collected from (or about) any number of various parts, components, and/or systems of AV 402. By way of example, diagnostic data can include data received from (or about) the functioning of various AV sensors, including but not limited to various camera, lidar, radar and/or sonar sensors. In other examples, diagnostic data may include information regarding software and/or firmware modules, such as versioning information for firmware associated with one or more AV sensors. Diagnostic data received from AV 402 can be stored to a storage device (e.g., a database) 404 that is configured to collect and retain structured diagnostic data from various AVs. Although the example illustrated with respect to FIG. 4 shows diagnostic data stored with respect to a single AV (e.g., AV 402), it is understood that storage device 404 can be configured to receive and store diagnostic data from any number of AVs, such as any number of vehicles in an AV fleet.

Diagnostic data stored in storage device 404 can be processed to perform life/duty cycle estimates for the corresponding device/component (406). For example, diagnostic data associated with a lidar sensor can be used to estimate the remaining life of the lidar sensor and/or remaining duty cycles associated with sensor operation. In some aspects, diagnostic data can be used to update or adjust a previous estimate (durability estimate), of the component (e.g., lidar) lifespan. Life cycle estimates may be used to approximate an amount of time remaining before the corresponding component will need maintenance or replacement. For example, diagnostic data can be used to update an estimated lifespan of a component (e.g., a sensor), such as by reducing an estimated lifespan (e.g., from months to minutes) in response to a detected adverse event represented in the diagnostic data, such as the hitting of a pot hole. Life cycle estimates may be based on the type of work to be performed on the associated component. For example, life cycle estimates may include estimated durations until service/maintenance may be needed, and/or may include estimated durations until the component/s need to be replaced.

In some aspects, received diagnostic data may be used to formulate or update confidence estimates for data received from (or about) specific components. For example, the receipt of diagnostic data may be used to adjust weights that correspond with a confidence in data received from a specific sensor.

In some aspects, diagnostic data may be used for planning vehicle operations, such as a vehicle pullover within a period of time less than the expected lifetime (thus avoiding further component degradation), shutting down a component, such as a sensor, e.g., in cases in which it may be determined that an impending malfunction may affect other components, such as by shorting the main power, which may affect coupled sensors and/or other components. Additionally, diagnostic data may be used to drive decisions about whether to continue operation of a specific component, for example by factoring in the potential of increased damage to the component that may result from continued use.

Depending on the desired implementation, life/duty-cycle estimates for a given part (or system), can be made using models (or estimation models) configured to make lifecycle estimates based on the received diagnostic data. By way of example, the estimation models may be (or may include) machine-learning models that have been trained to make life cycle predictions based on diagnostic data. In other aspects, the models may include physics-based models, for example, that are configured to estimate the remaining life cycle of a given component based on empirical data accumulated for similar components that have been deployed in similar use contexts.

In some approaches, the estimated life cycle can be used to trigger a workflow process for adjusting and/or performing maintenance on the corresponding component or system (408). For example, life cycle estimates can be used to proactively generate an action (or action request) that includes information and/or instructions to facilitate maintenance on the component or system. For example, the action may include one or more work orders to acquire replacement parts for a given component. In some aspects, the action can include instructions to modify or otherwise alter an operating state of one or more AV components and/or systems. By way of example, if an AV component is beginning to fail, for example, due to overheating, the action may include instructions to reduce a duty cycle of the component e.g., to reduce the amount of heat generated by operation of the component.

In some implementations, the generated action may be configured to facilitate a course of action that takes into consideration component dependencies. For example, the impact of a failed component on other components/systems (e.g., associated components) may be used to identify/select additional/different components needed to complete necessary maintenance. By way of example, diagnostic data may be received for a rotary actuator used to scan a lidar sensor. Based on the diagnostic data, it may be predicted that the rotary actuator is likely to fail at a future time. If actuator malfunction is determined/predicted to negatively impact the associated lidar sensor, then additional components may be automatically ordered to service the lidar sensor.

In other aspects, component dependencies may be used to inform modifications to associated components e.g., to alleviate or avoid malfunction or failure of a problematic component. For example, if a component is overheating, the generated action may be configured to modify an associated component, such as an associated cooling fan (e.g., by increasing the fan speed) to mitigate the overheating.

It is understood that the system 400 illustrated in FIG. 4 may be implemented entirely or partially on the AV, e.g., AV 402. By way of example, the collection and analysis of diagnostic data may be performed by one or more compute nodes on the AV. Alternatively, various components of system 400 may be implemented by one or more systems that are remote, or distinct from AV 402. For example, the collection, storage and/or analysis of diagnostic data may be performed by one or more remote computing systems or servers, such as those that may be connected to AV 402 via a network infrastructure, such as a private computing network, a public computing network, or a network of networks, e.g., the Internet.

FIG. 5 illustrates a flowchart of an example process 500 for determining whether to generate an order request for replacement parts of an AV component. Process 500 begins with step 502 in which diagnostic data (e.g., first diagnostic data) is received, wherein the received diagnostic data corresponds with an AV component or system. As discussed above, the diagnostic data may correspond with operations of one or more AV systems or components, such as one or more AV sensors.

At step 504, the process 500 includes steps for determining an estimated life cycle of the AV component, e.g., based on diagnostic data received at step 502. As discussed above, life cycle determinations can be made using one or more models that are configured (or trained) to predict component/system lifespan. By way of example, prediction models used to estimate component failure timelines may include empirically-based models, e.g., that are based on actuarial data for similar components, and/or for components deployed in a similar context. In other approaches, prediction models may include the use of machine-learning models, e.g., that have been trained based on ground-truth training data, e.g., that correlates diagnostic data with component failure events. In some implementations, the model used to determine/estimate the life cycle of a given component/system may depend on a variety of factors, including but not limited to: component/system type, firmware and/or software versioning information, deployment context, and/or component/system dependencies, etc.

At step 506, the process 500 includes determining whether to generate an ACTION request for one or more replacement parts of the AV component, e.g., based on the life cycle estimated at step 504. As discussed above, the action request may include instructions for modifying operation of one or more AV components or systems. Additionally, the action request may include information describing work orders for needed replacement parts, and/or for different/additional parts, e.g., based on component dependencies.

In some aspects, the decision to generate an order for replacement parts can be based on pre-determined thresholds relating to the estimated timespan of component failure. For example, orders requests may be generated if the estimated lifecycle of a given component is expected to be less than or equal to a predetermined time duration, such as two-weeks, or one-month, etc. Depending on the desired implementation, such thresholds may be component/system specific, and/or may be determined based on historic statistical data for various other components, e.g., for similar component used on various other fleet vehicles, or for components deployed to similar use cases.

In some aspects, subsequently received diagnostic data can be used to update/revise life cycle estimates for a given component and/or system. For example, subsequent (second) diagnostic data received for the component may be processed to determine if the previously determined life cycle estimate (step 504), is still accurate or should be revised.

FIG. 6 is an illustrative example of a deep learning neural network 600 that can be implemented to predict or estimate the durability (lifetime) of a given component based on associated diagnostic data. An input layer 620 includes input data. In one illustrative example, the input layer 620 can be configured to receive diagnostic data associated with a given AV component, such as a camera or LiDAR sensor. The neural network 600 includes multiple hidden layers 622 a, 622 b, through 622 n. The hidden layers 622 a, 622 b, through 622 n include “n” number of hidden layers, where “n” is an integer greater than or equal to one. The number of hidden layers can be made to include as many layers as needed for the given application. The neural network 600 further includes an output layer 621 that provides an output resulting from the processing performed by the hidden layers 622 a, 622 b, through 622 n.

The neural network 600 is a multi-layer neural network of interconnected nodes. Each node can represent a piece of information. Information associated with the nodes is shared among the different layers and each layer retains information as information is processed. In some cases, the neural network 600 can include a feed-forward network, in which case there are no feedback connections where outputs of the network are fed back into itself. In some cases, the neural network 600 can include a recurrent neural network, which can have loops that allow information to be carried across nodes while reading in input.

Information can be exchanged between nodes through node-to-node interconnections between the various layers. Nodes of the input layer 620 can activate a set of nodes in the first hidden layer 622 a. For example, as shown, each of the input nodes of the input layer 620 is connected to each of the nodes of the first hidden layer 622 a. The nodes of the first hidden layer 622 a can transform the information of each input node by applying activation functions to the input node information. The information derived from the transformation can then be passed to and can activate the nodes of the next hidden layer 622 b, which can perform their own designated functions. Example functions include convolutional, up-sampling, data transformation, and/or any other suitable functions. The output of the hidden layer 622 b can then activate nodes of the next hidden layer, and so on. The output of the last hidden layer 622 n can activate one or more nodes of the output layer 621, at which an output is provided. In some cases, while nodes (e.g., node 626) in the neural network 600 are shown as having multiple output lines, a node can have a single output and all lines shown as being output from a node represent the same output value.

In some cases, each node or interconnection between nodes can have a weight that is a set of parameters derived from the training of the neural network 600. Once the neural network 600 is trained, it can be referred to as a trained neural network, which can be used to classify one or more activities. For example, an interconnection between nodes can represent a piece of information learned about the interconnected nodes. The interconnection can have a tunable numeric weight that can be tuned (e.g., based on a training dataset), allowing the neural network 600 to be adaptive to inputs and able to learn as more and more data is processed.

The neural network 600 is pre-trained to process the features from the data in the input layer 620 using the different hidden layers 622 a, 622 b, through 622 n in order to provide the output through the output layer 621. In some cases, the neural network 600 can adjust the weights of the nodes using a training process called backpropagation. As noted above, a backpropagation process can include a forward pass, a loss function, a backward pass, and a weight update. The forward pass, loss function, backward pass, and parameter update is performed for one training iteration. The process can be repeated for a certain number of iterations for each set of training data until the neural network 600 is trained well enough so that the weights of the layers are accurately tuned.

A loss function can be used to analyze error in the output. Any suitable loss function definition can be used, such as a Cross-Entropy loss. Another example of a loss function includes the mean squared error (MSE), defined as E_total=Σ(½(target−output)²). The loss can be set to be equal to the value of E_total. The goal of training is to minimize the amount of loss so that the predicted output is the same as the training label. The neural network 600 can perform a backward pass by determining which inputs (weights) most contributed to the loss of the network, and can adjust the weights so that the loss decreases and is eventually minimized. A derivative of the loss with respect to the weights (denoted as dL/dW, where W are the weights at a particular layer) can be computed to determine the weights that contributed most to the loss of the network. After the derivative is computed, a weight update can be performed by updating all the weights of the filters. For example, the weights can be updated so that they change in the opposite direction of the gradient. The weight update can be denoted as w=w_i−η dL/dW, where w denotes a weight, wi denotes the initial weight, and η denotes a learning rate. The learning rate can be set to any suitable value, with a high learning rate including larger weight updates and a lower value indicating smaller weight updates.

The neural network 600 can include any suitable deep network. One example includes a convolutional neural network (CNN), which includes an input layer and an output layer, with multiple hidden layers between the input and out layers. The hidden layers of a CNN include a series of convolutional, nonlinear, pooling (for downsampling), and fully connected layers. The neural network 600 can include any other deep network other than a CNN, such as an autoencoder, a deep belief nets (DBNs), a Recurrent Neural Networks (RNNs), among others.

As understood by those of skill in the art, machine-learning based classification techniques can vary depending on the desired implementation. For example, machine-learning classification schemes can utilize one or more of the following, alone or in combination: hidden Markov models; recurrent neural networks; convolutional neural networks (CNNs); deep learning; Bayesian symbolic methods; general adversarial networks (GANs); support vector machines; image registration methods; applicable rule-based system. Where regression algorithms are used, they may include including but are not limited to: a Stochastic Gradient Descent Regressor, and/or a Passive Aggressive Regressor, etc.

Machine learning classification models can also be based on clustering algorithms (e.g., a Mini-batch K-means clustering algorithm), a recommendation algorithm (e.g., a Miniwise Hashing algorithm, or Euclidean Locality-Sensitive Hashing (LSH) algorithm), and/or an anomaly detection algorithm, such as a Local outlier factor. Additionally, machine-learning models can employ a dimensionality reduction approach, such as, one or more of: a Mini-batch Dictionary Learning algorithm, an Incremental Principal Component Analysis (PCA) algorithm, a Latent Dirichlet Allocation algorithm, and/or a Mini-batch K-means algorithm, etc.

FIG. 7 shows an example of computing system 700, which can be for example any computing device making up internal computing system 110, remote computing system 150, (potential) passenger device executing rideshare app 170, or any component thereof in which the components of the system are in communication with each other using connection 705. Connection 705 can be a physical connection via a bus, or a direct connection into processor 710, such as in a chipset architecture. Connection 705 can also be a virtual connection, networked connection, or logical connection.

In some embodiments, computing system 700 is a distributed system in which the functions described in this disclosure can be distributed within a datacenter, multiple data centers, a peer network, etc. In some embodiments, one or more of the described system components represents many such components each performing some or all of the function for which the component is described. In some embodiments, the components can be physical or virtual devices.

Example system 700 includes at least one processing unit (CPU or processor) 710 and connection 705 that couples various system components including system memory 715, such as read-only memory (ROM) 720 and random-access memory (RAM) 725 to processor 710. Computing system 700 can include a cache of high-speed memory 712 connected directly with, in close proximity to, or integrated as part of processor 710.

Processor 710 can include any general-purpose processor and a hardware service or software service, such as services 732, 734, and 736 stored in storage device 730, configured to control processor 710 as well as a special-purpose processor where software instructions are incorporated into the actual processor design. Processor 710 may essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor may be symmetric or asymmetric.

To enable user interaction, computing system 700 includes an input device 745, which can represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech, etc. Computing system 700 can also include output device 735, which can be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems can enable a user to provide multiple types of input/output to communicate with computing system 700. Computing system 700 can include communications interface 740, which can generally govern and manage the user input and system output. There is no restriction on operating on any particular hardware arrangement, and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed.

Storage device 730 can be a non-volatile memory device and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, random access memories (RAMs), read-only memory (ROM), and/or some combination of these devices.

The storage device 730 can include software services, servers, services, etc., that when the code that defines such software is executed by the processor 710, it causes the system to perform a function. In some embodiments, a hardware service that performs a particular function can include the software component stored in a computer-readable medium in connection with the necessary hardware components, such as processor 710, connection 705, output device 735, etc., to carry out the function.

For clarity of explanation, in some instances, the present technology may be presented as including individual functional blocks including functional blocks comprising devices, device components, steps or routines in a method embodied in software, or combinations of hardware and software.

Any of the steps, operations, functions, or processes described herein may be performed or implemented by a combination of hardware and software services or services, alone or in combination with other devices. In some embodiments, a service can be software that resides in memory of a client device and/or one or more servers of a content management system and perform one or more functions when a processor executes the software associated with the service. In some embodiments, a service is a program or a collection of programs that carry out a specific function. In some embodiments, a service can be considered a server. The memory can be a non-transitory computer-readable medium.

In some embodiments, the computer-readable storage devices, mediums, and memories can include a cable or wireless signal containing a bit stream and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se.

Methods according to the above-described examples can be implemented using computer-executable instructions that are stored or otherwise available from computer-readable media. Such instructions can comprise, for example, instructions and data which cause or otherwise configure a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The executable computer instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer-readable media that may be used to store instructions, information used, and/or information created during methods according to described examples include magnetic or optical disks, solid-state memory devices, flash memory, USB devices provided with non-volatile memory, networked storage devices, and so on.

Devices implementing methods according to these disclosures can comprise hardware, firmware and/or software, and can take any of a variety of form factors. Typical examples of such form factors include servers, laptops, smartphones, small form factor personal computers, personal digital assistants, and so on. The functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example.

The instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are means for providing the functions described in these disclosures.

Although a variety of examples and other information was used to explain aspects within the scope of the appended claims, no limitation of the claims should be implied based on particular features or arrangements in such examples, as one of ordinary skill would be able to use these examples to derive a wide variety of implementations. Further and although some subject matter may have been described in language specific to examples of structural features and/or method steps, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or acts. For example, such functionality can be distributed differently or performed in components other than those identified herein. Rather, the described features and steps are disclosed as examples of components of systems and methods within the scope of the appended claims. 

What is claimed is:
 1. An apparatus for managing autonomous vehicle (AV) systems, comprising: at least one memory; and at least one processor coupled to the at least one memory, the at least one processor configured to: receive first diagnostic data corresponding with an AV component; determine, based on the first diagnostic data, an estimated life cycle of the AV component; and determine whether to generate an action for the AV, based on the estimated life cycle of the AV component.
 2. The apparatus of claim 1, wherein the at least one processor is further configured to: receive second diagnostic data corresponding with the AV; and update the estimated life cycle for the AV component based on the second diagnostic data.
 3. The apparatus of claim 1, wherein the action comprises an order request for one or more replacement parts associated with the AV.
 4. The apparatus of claim 1, wherein the action comprises an instruction for implementing an alternative operating mode of the AV.
 5. The apparatus of claim 1, wherein the action comprises an instruction for implementing an alternative operating mode for the AV component or an associated component.
 6. The apparatus of claim 1, wherein to determine whether to generate the action the at least one processor is further configured to: compare the estimated life cycle of the AV component to a pre-determined threshold; and generate the action to order the one or more replacement parts if the estimated life cycle of the AV component is below the pre-determined threshold.
 7. The apparatus of claim 6, wherein the at least one processor is further configured to: route the action request based on the one or more replacement parts.
 8. The apparatus of claim 1, wherein to determine the estimated life cycle of the AV component, the at least one processor is configured to: provide the first diagnostic data to a machine-learning model.
 9. The apparatus of claim 1, wherein the AV component comprises a camera, a Light Detection and Ranging (LiDAR) sensor, a radar sensor, or a combination thereof.
 10. The apparatus of claim 1 wherein the AV component is associated with an AV propulsion system, an AV braking system, an AV navigation system, or a combination thereof.
 11. A computer-implemented method for managing autonomous vehicle (AV) systems, comprising: receiving first diagnostic data corresponding with an AV component; determining, based on the first diagnostic data, an estimated life cycle of the AV component; and determining whether to generate an action for the AV, based on the estimated life cycle of the AV component.
 12. The computer-implemented method of claim 11, further comprising: receiving second diagnostic data corresponding with the AV; and updating the estimated life cycle for the AV component based on the second diagnostic data.
 13. The computer-implemented method of claim 11, wherein the action comprises an order request for one or more replacement parts associated with the AV.
 14. The computer-implemented method of claim 11, wherein the action comprises an instruction for implementing an alternative operating mode of the AV.
 15. The computer-implemented method of claim 11, wherein the action comprises an instruction for implementing an alternative operating mode for the AV component or an associated component.
 16. The computer-implemented method of claim 11, wherein determining whether to generate the action further comprises: comparing the estimated life cycle of the AV component to a pre-determined threshold; and generating the action to order the one or more replacement parts if the estimated life cycle of the AV component is below the pre-determined threshold.
 17. The computer-implemented method of claim 16, further comprising: routing the action request based on the one or more replacement parts.
 18. The computer-implemented method of claim 11, wherein determining the estimated life cycle of the AV component further comprises: providing the first diagnostic data to a machine-learning model.
 19. The computer-implemented method of claim 11, wherein the AV component comprises a camera, a Light Detection and Ranging (LiDAR) sensor, a radar sensor, or a combination thereof.
 20. A non-transitory computer-readable storage medium comprising at least one instruction for causing a computer or processor to: receive first diagnostic data corresponding with an AV component; determine, based on the first diagnostic data, an estimated life cycle of the AV component; and determine whether to generate an action for the AV, based on the estimated life cycle of the AV component. 